在 Spring Boot 中,會將「MVC 的架構模式」轉化成是 「Controller-Service-Dao 的三層式架構」 來實作。 因此大家以後只要在 Spring Boot 中看到「Controller-Service-Dao」這種三層式架構時,就可以知道他是套用了 MVC 的架構模式在設計了!
而在 Controller-Service-Dao 的三層式架構中,其實就是將一份 Spring Boot 專案,區分成 Controller、Service、以及 Dao 這三層來管理,讓每一層都去負責不同的功能。
像是在下圖中就列出了 Controller、Service、Dao 這三層架構之間的關係,以及他們個別負責的功能:
首先 Controller 層的用途,是負責去「接收前端傳過來的 Http request,並且去驗證請求參數」。
所以像是我們在 Spring MVC 中所介紹的那些註解,如 @RequestMapping
、@RequestParam
...等等,只要是和「前端」進行溝通的部分,就都會放在 Controller 層裡面。
而當 Controller 層接收到前端傳過來的 Http request、並且對其進行驗證之後,這時候 Controller 就會去 call Service層,讓 Service 負責去接手後續的處理。
而 Service 層的用途,主要是負責「商業邏輯的處理」,所以主要的核心商業邏輯,通常都會放在 Service 層裡面來實作。
而在 Service 層實作核心的商業邏輯時,多多少少都會需要去操作資料庫,因此這時 Service 層就會去 call Dao 層,使用 Dao 層去和資料庫進行溝通。
因此 Dao 層所負責的功能,就是「專門去和資料庫進行溝通的」,所以像是我們在 Spring JDBC 中所介紹的所有用法,只要是和「資料庫」溝通的部分,就都會放在 Dao 層裡面來實作。
補充:Dao 層為 Data access object 的縮寫。
所以在套用 Controller-Service-Dao 三層式架構的設計之後,我們就可以將 Spring Boot 中的程式,依照不同的功能,把他放在不同的層級中來管理。
因此我們之後就可以透過 Controller-Service-Dao 的三層式架構,更好的去管理和維護 Spring Boot 的程式了!